草庐IT

c++ - 开始 Code::blocks 和 UnitTest++

全部标签

c - 我如何知道外部 DLL 是否进入函数?

我有一个使用外部DLL的Win32应用程序(控制台应用程序)。DLL导出两个函数(Run和SecretFunction),我需要知道DLL何时进入SecretFunction。我在运行时加载DLL(我通过命令行参数获取路径)。我无法使用共享事件。我得到的两个提示是对异常方法使用一些类似的逻辑,并可能使用VirtualQuery/VirtualProtect。有人能指出我正确的方向吗?澄清:我的程序将调用Run函数。Run函数可能调用也可能不调用SecretFunction。我想从我的程序中知道是否调用了SecretFunction。我有以下代码,所以我有函数的地址:pfn_Secret

c - Windows 是否有等同于 Unix GCC 的 __attribute__((weak)) 的 __declspec?

我想导入一些C代码但覆盖它的main()函数。我可以在Unix中通过在C代码的主声明前加上__attribute__((weak))来做到这一点,但是,这不会在Windows中编译,因为StrawberryPerl的GCC和MinGW的GCC都无法识别__attribute__((弱))。在线阅读文档,__declspec似乎功能相似。是否有一个__declspec等同于UnixGCC的__attribute__((weak))宏?这是一个更具体的版本earlier我发布的问题。 最佳答案 我认为还有另一种使用MSVC的方法,如果您

计算执行该程序时c程序中上下文切换的次数

我想输出Windows操作系统在执行我的程序时执行的上下文切换次数。 最佳答案 您可以为此目的使用性能计数器。发件人:http://msdn.microsoft.com/en-us/library/aa373083%28VS.85%29.aspx您可以通过两种方式查看上下文切换数据:SystemMonitor中的System\ContextSwitches/sec计数器报告系统范围内的上下文切换。Thread(_Total)\ContextSwitches/sec计数器报告所有线程每秒生成的上下文切换总数。

c - 使用 ShellExecuteEx 永久设置路径变量

我想出了这段代码。它将正确执行并返回true。但它不会改变Path变量的值。当我这样输入时-->setxPath"C:\ProgramFiles\Java\jdk1.7.0_02\bin\"在cmd中,它可以工作并更改Path值这是代码//PrepareshellExecutInfoSHELLEXECUTEINFOShRun={0};ShRun.cbSize=sizeof(SHELLEXECUTEINFO);ShRun.fMask=SEE_MASK_NOCLOSEPROCESS;ShRun.hwnd=NULL;ShRun.lpVerb=NULL;ShRun.lpFile="C:\\Wi

c - IoCreateSymbolicLink 何时返回 STATUS_OBJECT_NAME_COLLISION

当我调用IoCreateSymbolicLink时失败,状态为STATUS_OBJECT_NAME_COLLISION。我的驱动程序中有代码,我试图在NT和DOS之间创建符号链接(symboliclink)名称。一般什么时候会出现这个错误?RtlInitUnicodeString(&deviceName,L"\\Device\\StreamEitor");RtlInitUnicodeString(&symbolicLinkName,L"\\DosDevices\\StreamEitor");status=IoCreateDevice(driverObject,0,&deviceName

windows - 如何定义安装后出现在开始菜单上的快捷方式?

我正在VisualStudio中处理Windows安装项目。在“文件系统”编辑器中,在“用户程序菜单”节点下方,我有一个包含多个快捷方式的应用程序文件夹。一个快捷方式用于启动应用程序;另一个恢复应用程序的出厂设置(因此它也调用应用程序,但带有参数)。运行安装程序后,文件夹及其包含的快捷方式会在“开始”菜单中正确创建。此外,在没有代表我执行任何操作的情况下,安装程序会在“开始”菜单的“顶级”创建一个额外的快捷方式(即,当您通过单击“开始”按钮打开“开始”菜单时,它是可见的)。这个额外的快捷方式曾经是启动应用程序的快捷方式。那很好。但是由于我添加了“恢复出厂设置”快捷方式,所以这是出现在“

c - 为什么微软将类型CHAR定义为char,将宏CONST定义为const?

这个问题在这里已经有了答案:WindowsDataTypes...whysoredundant/undescriptive?(3个答案)关闭8年前。作为C初学者,翻看MSDN'sWindowsDataTypes,我看到有很多定义的类型似乎是多余的。例如使用typedef:CHAR--typedefcharCHAR;FLOAT--typedeffloatFLOAT;也作为对象宏:CONST--#defineCONST常量据我了解,typedef和#define通常用于阐明程序员的意图:#defineBOOLint和/或缩短类型声明(想不出一个好的例子):typedefunsignedch

python - 在 Windows 上的 PsychoPy 中记录屏幕触摸开始的时间

我正在帮助在Windows8平板电脑上使用PsychoPy实现一项实验。似乎无法通过PsychoPy、pyglet或PyGame界面直接访问触摸事件。我发现的大多数其他来源都提到使用鼠标移动事件代替触摸事件。这对于记录位置很有效,但对于记录时间它对我们不起作用。我们想收集触摸开始的时间,而鼠标事件是在触摸结束时发生的。有谁知道在PsychoPy中或通过将另一个库导入实验中来执行此操作的方法吗?更新:记录ioHub鼠标事件,看起来按下和释放鼠标事件都在触摸结束时发送。这是有道理的,因为这是操作系统确定触摸不是滑动的点。(此外,它会根据触摸的持续时间来决定触摸是左击还是右击)。

c - 如何获取文件的 "valid data length"?

有一个函数可以设置“有效数据长度”值:SetFileValidData,但我没有找到获取“有效数据长度”值的方法。如果EOF与VDL不同,我想知道给定的文件,因为在VDL的情况下在VDL之后写入将导致性能损失,如here所述. 最佳答案 我找到了this页面,声称:thereisnomechanismtoquerythevalueoftheVDL所以答案是“你不能”。如果您关心性能,您可以将VDL设置为EOF,但请注意,您可能允许访问磁盘上的旧垃圾-这两个指针之间的部分,如果您不访问该文件则应该为零设置VDL指向EOF。

我可以在特定地址创建一个堆栈的线程吗?

我正在做一些实验,想知道是否可以在我提供的特定地址创建一个线程堆栈,或者至少让线程堆栈只在我可以指定的某个(巨大的)虚拟内存区域中产生.我对此感兴趣的原因是我想在某个时候将整个堆栈复制到远程进程并且需要指针保持完整,并且线程堆栈不会发生冲突。这可能不是最好/最安全的方法,我知道,但这只是一个小小的爱好项目。如果您知道如何在Linux上执行此操作,我也对此很感兴趣。 最佳答案 只是编译评论所说的内容。Forwindows,theanswerisno对于Unix(posix),答案是pthread_attr_setstack.(另见上面